﻿#include <iostream>
#include <stack>
#include <string>
#include <unordered_map>
#include <clocale>

bool check_brackets(const std::string& str) {
    std::stack<char> s;
    std::unordered_map<char, char> brackets = { {'(', ')'}, {'[', ']'}, {'{', '}'} };

    for (char ch : str) {
        if (brackets.count(ch)) {
            s.push(ch);
        }
        else {
            if (s.empty()) {
                return false;
            }
            if (brackets[s.top()] != ch) {
                return false;
            }
            s.pop();
        }
    }
    return s.empty();
}

int main() {
    setlocale(0, "RUS");
    std::cout << "Введите скобочную последовательность:" << std::endl;
    std::string bracket_string;
    std::cin >> bracket_string;
    if (check_brackets(bracket_string)) {
        std::cout << "True" << std::endl;
    }
    else {
        std::cout << "False" << std::endl;
    }
    return 0;
}